package com.aiwiown.snackmq.common.message;

/**
 * 消息状态
 */
public enum MessageStatus {
    /**
     * 创建
     */
    CREATED,

    /**
     * 发送
     */
    SENT,

    /**
     * 已确认
     */
    ACKNOWLEDGED,

    /**
     * 已消费
     */
    CONSUMED,

    /**
     * 失败
     */
    FAILED,

    /**
     * 过期
     */
    EXPIRED,

    /**
     * 已删除
     */
    DELETED,

    /**
     * 未找到
     */
    NOT_FOUND,

    /**
     * 成功
     */
    SUCCESS,

    /**
     * 修正：新增状态，表示消费时队列为空
     * 空
     */
    EMPTY,

    /**
     * 【新增】用于表示事务消息的未知状态。
     * 当本地事务执行结果为 UNKNOWN 时，客户端将返回此状态，等待 Broker 回查。
     */
    UNKNOWN,
    /**
     * 【新增】表示服务暂时不可用，通常是由于 Leader 切换或分区正在初始化。
     * 客户端收到此状态后应进行短暂等待后重试。
     */
    SERVICE_NOT_READY,

    /**
     * 【新增】表示服务重定向，通常由 Leader 迁移或分区初始化。
     * 客户端收到此状态后应根据返回的 redirectAddress 重定向到新的 Broker。
     */
    REDIRECT;
}